package web.suzy.oj.service.oj;

import com.baomidou.mybatisplus.core.metadata.IPage;
import web.suzy.oj.common.result.ResultBean;
import web.suzy.oj.pojo.entity.discussion.Discussion;
import web.suzy.oj.pojo.vo.DiscussionVO;

/**
 * YangSuzy 软件工作室
 * 类名: DiscussionService
 * 描述: ---- 待定 -----
 * 功能: --- 待定 -----
 *
 * @author YangSuzy
 * Date: 2022/12/10 22:52
 */
public interface DiscussionService {

    /**
     * 方法名: getDiscussionList
     * 描述: 获取讨论列表
     *
     * @param limit       每页显示数目
     * @param currentPage 当前页
     * @param categoryId  分类ID
     * @param pid         题目ID
     * @param onlyMine    是否只读自己
     * @param keyword     关键字
     * @param admin       是否只读管理员
     * @return web.suzy.oj.common.result.ResultBean<com.baomidou.mybatisplus.core.metadata.IPage < web.suzy.oj.pojo.entity.discussion.Discussion>>
     * @date 2022/12/10 22:53
     * @auther YangSuzy
     **/
    ResultBean<IPage<Discussion>> getDiscussionList(
            Integer limit, Integer currentPage, Integer categoryId,
            String pid, Boolean onlyMine, String keyword, Boolean admin);

    /**
     * 方法名: getDiscussion
     * 描述: 根据讨论ID获取讨论详情
     *
     * @param did 讨论ID
     * @return web.suzy.oj.common.result.ResultBean<web.suzy.oj.pojo.vo.DiscussionVO>
     * @date 2022/12/10 23:10
     * @auther YangSuzy
     **/
    ResultBean<DiscussionVO> getDiscussion(Integer did);

    /**
     * 方法名: addDiscussion
     * 描述: 发布讨论
     *
     * @param discussion 讨论
     * @return web.suzy.oj.common.result.ResultBean<java.lang.Void>
     * @date 2022/12/10 23:27
     * @auther YangSuzy
     **/
    ResultBean<Void> addDiscussion(Discussion discussion);
}
